#pragma once

#include <string>
#include <map>
#include <memory>

// 平台类型管理器 - 单例类
class PlatformTypeManager {
public:
    // 获取单例实例
    static PlatformTypeManager& getInstance();
    
    // 禁止拷贝和赋值
    PlatformTypeManager(const PlatformTypeManager&) = delete;
    PlatformTypeManager& operator=(const PlatformTypeManager&) = delete;
    
    // 初始化管理器（从数据库加载数据）
    bool initialize(const std::string& dbPath);
    
    // 检查是否存在指定的平台类型
    bool hasPlatformType(const std::string& platformType) const;
    
    // 获取平台类型的声明字符串
    std::string getPlatformTypeDeclaration(const std::string& platformType) const;
    
    // 获取所有平台类型
    const std::map<std::string, std::string>& getAllPlatformTypes() const;

private:
    // 私有构造函数（单例模式）
    PlatformTypeManager() = default;
    
    // 平台类型映射表
    std::map<std::string, std::string> platformTypes;
    
    // 是否已初始化
    bool initialized = false;
}; 